package com.xiyue.leaspring.service;

import com.xiyue.leaspring.vo.Goods;

import java.util.Map;
import java.util.Set;

public interface IGoodsService {

    /**
     * 进行商品添加前的数据查询操作
     * @return 返回的数据包含有如下内容：
     *  key=allItems,value=所有的商品分类
     *  key=allTags,value=所有的商品标签
     */
    public Map<String,Object> preAdd();

    /**
     * 实现商品数据的追加处理,新添加商品的dflag内容为0
     * @param vo 要追加的商品信息（配置好关联关系）
     * @return 追加成功返回true,否则返回false
     */
    public boolean add(Goods vo);

    /**
     * 查询商品信息的分页数据，如果没有查询列或查询关键字,则进行整体查询
     * @param keyWord 查询关键字
     * @param currentPage 当前页
     * @param lineSize 每页行
     * @return 返回的内容包含有如下信息：
     * 1.key=allGoods,value=全部商品信息
     * 2.key=allRecorders,value=统计结果
     * 3.key=allItems,value=全部的分类信息（Map集合）
     */
    public Map<String,Object> list(String keyWord,int currentPage,int lineSize);

    /**
     * 商品修改前的数据查询操作
     * @param id
     * @return 返回的数据包含有如下内容:
     * key=allItems、value=所有的商品分类
     * key=allTags、value=所有的商品标
     * key=goods、value=要修改的商品信息
     * key=goodsTags 、value=商品标签
     */
    public Map<String,Object> preEdit(long id);

    /**
     * 商品数据的修改处理
     * @param vo 要追加的商品信息
     * @return 修改成功返回true,否则返回false
     */
    public boolean edit(Goods vo);

    /**
     * 商品信息删除处理
     * @param gids 要删除的商品编号
     * @return 如果没有商品或者商品删除失败,返回false
     */
    public boolean remove(Set<Long> gids);
}
